package com.shrct.businessprocess.product;

import com.shrct.businessprocess.product.IHasProductMetaType;
import com.shrct.businessprocess.product.RCBrand;
import com.shrct.businessprocess.product.RCProductCategory;
import com.shrct.businessprocess.product.RCProductMetaType;
import com.shrct.businessprocess.product.impl.RCProductSpecificationImpl;
import com.shrct.businessprocess.product.proxy.RCProductSpecificationProxy;
import edu.fudan.mylang.pf.EntityImplementation;
import edu.fudan.mylang.pf.IModelObject;
import edu.fudan.mylang.pf.INamedModelObject;

@EntityImplementation(implementBy = RCProductSpecificationImpl.class)
public interface RCProductSpecification extends IModelObject, INamedModelObject, IHasProductMetaType {
  public abstract String getCode();
  
  public abstract RCProductSpecification setCode(final String code);
  
  public abstract String getNormalizedCode();
  
  public abstract RCProductSpecification setNormalizedCode(final String normalizedCode);
  
  public abstract RCProductCategory getProductCategory();
  
  public abstract RCProductSpecification setProductCategory(final RCProductCategory productCategory);
  
  public abstract String getName();
  
  public abstract RCProductSpecification setName(final String name);
  
  public abstract String getDetails();
  
  public abstract RCProductSpecification setDetails(final String details);
  
  public abstract RCBrand getBrand();
  
  public abstract RCProductSpecification setBrand(final RCBrand brand);
  
  public abstract RCProductMetaType getProductMetaType();
  
  public abstract RCProductSpecification setProductMetaType(final RCProductMetaType productMetaType);
  
  public abstract String getEntityName();
  
  public abstract RCProductSpecificationProxy toProxy();
}
